The present invention relates to proving access to data sets via catalogs, and more particularly, this invention relates to providing record level sharing (RLS) access to the catalogs in an operating system.
Virtual storage access method (VSAM) is a disk file storage access method used in IBM z/OS environments. VSAM data sets include multiple records, and the data sets are of fixed or variable length, and are organized into fixed-size blocks called Control Intervals (CIs). The CIs are then organized into larger groups referred to as Control Areas (CAs). CIs are used as units of transfer between direct access storage devices (DASDs) and requesting systems such that a read request will read one complete CI. CAs are used as units of allocation, such that when a VSAM data set is defined, an integral number of CAs will be allocated for that VSAM data set.
An integrated catalog facility (ICF) is provided on a server or mainframe which includes two components, a basic catalog structure (BCS) and a VSAM volume data set (VVDS). The BCS, sometimes referred to as a catalog generically, is typically structured as a VSAM key sequence data set (KSDS) which is an indexed VSAM organization having the most structured form of a data set, and allows for the VSAM to provide a majority of the access routines without substantial input or direction from the accessing system, besides the most rudimentary information. The BCS component is typically accessed via VSAM non-shared resource (NSR) interfaces, and includes information related to a location of user data sets and system data sets (whichever are stored to the corresponding disk, tape, or optical drive).
The VVDS is typically structured as a VSAM entry sequenced data set (ESDS) which is less structured than the VSAM KSDS. ESDSs do not contain an index component and require access routines to track the location of the records stored in the ESDS. Pointers to VVDS records in the ESDS are stored in the associated BCS records. The VSAM ESDS is accessed via both VSAM NSR and media manager interfaces, and includes information about specific attributes of user data sets and system data sets (whichever are stored to the corresponding DASD). The ICF allows for cross-system sharing of the BCS and VVDS, and is entirely responsible for sharing serialization, caching, and buffer invalidation, among other functions.
As the numbers of user data sets and system data sets grow, so do the catalogs that these data sets use. Every access to a catalog to locate and/or update a record typically uses a global resource serialization (GRS) enqueue (ENQ) request, commonly named SYSIGGV2, to be obtained in one of shared mode or exclusive mode. As a result of using a single request for each catalog access request, sharing a large catalog across multiple systems often encounters large GRS ENQ contentions (or conflicts) over the major name SYSIGGV2 (the minor name is typically the name of the individual catalog being accessed). The enqueue wait time significantly impacts the performance of any large catalogs, particularly during batch windows where batch jobs often require obtaining SYSIGGV2 ENQ in exclusive mode to update records in these catalogs.
In order to try to accommodate for these issues, large catalogs most susceptible to experiencing large wait times have been split into smaller catalogs with different catalog names. In this way, in order to access these small catalogs, different GRS ENQs are acquired, which may reduce each enqueue wait time due to less GRS ENQ contentions. However, splitting large catalogs into smaller catalogs is time consuming and negatively impacts availability. Accordingly, anything that can avoid this disruptive activity while also avoiding the long enqueue wait times for accessing large catalogs would be beneficial.